package com.syt_02;

public interface DianQiFactory {
    public Kongtiao createkongtiao();//抽象工厂
    public Tv createtv();

}
interface Kongtiao {  //空调的抽象产品
    public void display();

}

interface Tv {//电视的抽象产品
    public void display();

}

class HairerFactory implements DianQiFactory {

    public Kongtiao createkongtiao() {   //海尔工厂生产海尔空调

        return new Hairer_Kong_Tiao();
    }

    public Tv createtv() {                  //海尔工厂生产海尔电视节
        return new Hairer_Tv();
    }

}



 class TvFactory implements DianQiFactory {

    @Override
    public Kongtiao createkongtiao() {
        // TODO 自动生成的方法存根
        return new Tcl_Kong_tiao();
    }

    @Override
    public Tv createtv() {
        // TODO 自动生成的方法存根
        return new Tcl_Tv();
    }

}



 class Hairer_Kong_Tiao implements Kongtiao {

    @Override
    public void display() {
        // TODO 自动生成的方法存根
        System.out.println("海尔空调");

    }

}



class Hairer_Tv implements Tv {

    @Override
    public void display() {
        // TODO 自动生成的方法存根
        System.out.println("海尔电视机");

    }

}



 class Tcl_Kong_tiao implements Kongtiao {

    @Override
    public void display() {
        // TODO 自动生成的方法存根
        System.out.println("TCL空调");
    }

}



 class Tcl_Tv implements Tv {


    public void display() {
        // TODO 自动生成的方法存根
        System.out.println("TCL电视机");

    }

}



 class Client {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根

        DianQiFactory factory1, factory2; // 两个抽象工厂
        Kongtiao k1, k2; // 空调两个抽象产品
        Tv tv1, tv2; // 电视机两个抽象产品

        factory1 = new HairerFactory(); // factory1 为具体海尔工厂
        k1 = factory1.createkongtiao();
        tv1 = factory1.createtv();
        k1.display();
        tv1.display();

        factory2 = new TvFactory();// factory2位具体的TCL工厂
        k2 = factory2.createkongtiao();// 工厂创建空调
        tv2 = factory2.createtv();// 工厂创建电视机
        k2.display();
        tv2.display();

    }

}
